perm filename PUPRTE.PAL[11,HE] blob
sn#656324 filedate 1982-04-29 generic text, type T, neo UTF8
; Copyright Xerox Corporation 1979
.TITLE PUPRTE
; PUPRTE.BPL -- MODULE IMPLEMENTING THE PUP ROUTING TABLE
.CSECT GLOBAL
G=.
.CSECT
; ENTRY POINT TO INITROUTINGTABLE
LA1:
SUB @(6),%0
MOV %7,@%0
MOV (6)+,-(0)
MOV %0,%5
MOV %1,-(5)
MOV #000201,%2
MOV -2.(0),%1
JSR %7,@G+256.
000004
MOV %1,G+414.
MOV G+414.,%1
INC %1
MOV #000004,%2
MUL #000040,%2
MOV #177777,%2
JSR %7,@G+208.
000004
MOV G+414.,%1
ASL %1
MOV #000005,(1)
MOV (0)+,%5
ADD (5)+,%0
JMP @%5
; ENTRY POINT TO HLOOKUP
LA2:
SUB @(6),%0
MOV %7,@%0
MOV (6)+,-(0)
MOV %0,%5
MOV %1,-(5)
MOV %2,-(5)
MOV %3,-(5)
CLR -8.(0)
MOV %0,%1
CLC
ROR %1
SUB #000004,%1
MOV %1,%3
MOV -4.(0),%2
MOV #000005,%1
JSR %7,@G+340.
000012
MOV %1,-10.(0)
MOV -8.(0),-12.(0)
LA13:
MOV -12.(0),%1
MUL #000004,%1
INC %1
ADD -2.(0),%1
MOV %1,-14.(0)
MOV -14.(0),%1
ASL %1
CMP (1),-4.(0)
BNE LA14
MOV -14.(0),%1
BR LA12
LA14:
MOV -14.(0),%1
ASL %1
CMP (1),#177777
BNE LA15
TST -6.(0)
BEQ LA16
MOV -14.(0),%1
BR LA12
LA16:
CLR %1
BR LA12
LA11:
JMP MA11
LA17:
LA15:
MOV -10.(0),%1
ADD -12.(0),%1
BIC #177740,%1
MOV %1,-12.(0)
CMP -8.(0),-12.(0)
BNE LA13
CLR %1
BR LA12
LA12:
MOV (0)+,%5
ADD (5)+,%0
JMP @%5
; ENTRY POINT TO HENUMERATE
LA3:
SUB @(6),%0
MOV %7,@%0
MOV (6)+,-(0)
MOV %0,%5
MOV %1,-(5)
MOV %2,-(5)
MOV %3,-(5)
MOV #000040,%1
DEC %1
CLR -8.(0)
MOV %1,-10.(0)
BR LA18
LA19:
MOV -8.(0),%1
MUL #000004,%1
INC %1
ADD -2.(0),%1
ASL %1
TST (1)
BLT LA20
MOV -8.(0),%1
MUL #000004,%1
INC %1
ADD -2.(0),%1
MOV -6.(0),%2
JSR %7,@-4.(0)
000014
LA20:
INC -8.(0)
LA18:
CMP -8.(0),-10.(0)
BLE LA19
MOV (0)+,%5
ADD (5)+,%0
JMP @%5
; ENTRY POINT TO HINSERT
LA4:
SUB @(6),%0
MOV %7,@%0
MOV (6)+,-(0)
MOV %0,%5
MOV %1,-(5)
MOV %2,-(5)
MOV #177777,%3
MOV -4.(0),%2
MOV -2.(0),%1
JSR %7,@G+342.
000006
MOV %1,-6.(0)
TST -6.(0)
BNE LA22
MOV #004257,%2
MOV G+414.,%1
JSR %7,@G+212.
000010
LA22:
MOV #000004,%2
MOV -6.(0),%1
JSR %7,@G+202.
000010
MOV -6.(0),%1
ASL %1
MOV -4.(0),(1)
MOV -6.(0),%1
BR LA21
LA21:
MOV (0)+,%5
ADD (5)+,%0
JMP @%5
; ENTRY POINT TO HDELETE
LA5:
SUB @(6),%0
MOV %7,@%0
MOV (6)+,-(0)
MOV %0,%5
MOV %1,-(5)
MOV %2,-(5)
CLR %3
MOV -4.(0),%2
MOV -2.(0),%1
JSR %7,@G+342.
000006
MOV %1,-6.(0)
TST -6.(0)
BEQ LA23
CLR -8.(0)
MOV -6.(0),%1
ASL %1
MOV #177777,(1)
LA24:
MOV #177777,-8.(0)
MOV #000040,%1
DEC %1
CLR -10.(0)
MOV %1,-12.(0)
BR LA25
LA26:
MOV -10.(0),%1
MUL #000004,%1
INC %1
ADD -2.(0),%1
MOV %1,-6.(0)
MOV -6.(0),%1
ASL %1
CMP (1),#177777
BEQ LA27
MOV -6.(0),%1
ASL %1
MOV #177777,%3
MOV (1),%2
MOV -2.(0),%1
JSR %7,@G+342.
000016
MOV %1,-14.(0)
MOV -14.(0),%1
ASL %1
CMP (1),#177777
BNE LA28
MOV #000004,%3
MOV -6.(0),%2
MOV -14.(0),%1
JSR %7,@G+200.
000020
MOV -6.(0),%1
ASL %1
MOV #177777,(1)
CLR -8.(0)
BR LA29
LA28:
LA27:
INC -10.(0)
LA25:
CMP -10.(0),-12.(0)
BLE LA26
LA29:
TST -8.(0)
BEQ LA24
LA23:
MOV (0)+,%5
ADD (5)+,%0
JMP @%5
; ENTRY POINT TO GATEWAYLISTENER
LA6:
SUB @(6),%0
MOV %7,@%0
MOV (6)+,-(0)
CLR -2.(0)
CLR -4.(0)
MOV %0,%1
CLC
ROR %1
SUB #000002,%1
CLR %2
JSR %7,@G+244.
000006
LA30:
MOV %0,%1
CLC
ROR %1
SUB #000002,%1
JSR %7,@G+246.
000006
TST %1
BEQ LA31
MOV G+414.,%3
MOV LA8,%2
MOV G+414.,%1
JSR %7,@G+348.
000006
CLR -2.(0)
MOV %0,%1
CLC
ROR %1
SUB #000002,%1
MOV #000144,%2
JSR %7,@G+244.
000006
LA31:
BR LA33
LA32:
MOV G+418.,%1
ADD #000013,%1
JSR %7,@G+232.
000006
MOV %1,-6.(0)
MOV -6.(0),%1
ASL %1
MOV 20.(1),%1
BIC #177400,%1
CMP %1,#000201
BNE LA34
MOV -6.(0),%1
ASL %1
MOV 32.(1),%1
BIC #177400,%1
MOV -6.(0),%2
ASL %2
MOV 6.(2),%2
ASL %2
CMP %1,4.(2)
BEQ LA36
MOV -6.(0),%1
JSR %7,@LA10
000010
BR LA37
LA36:
MOV -6.(0),%1
JSR %7,@G+306.
000010
LA37:
BR LA35
LA34:
MOV -6.(0),%1
JSR %7,@G+334.
000010
LA35:
LA33:
MOV G+418.,%1
ASL %1
TST 22.(1)
BNE LA32
TST G+416.
BEQ LA38
TST -2.(0)
BNE LA38
MOV #177777,%2
MOV G+418.,%1
JSR %7,@G+304.
000006
MOV %1,-6.(0)
TST -6.(0)
BEQ LA39
MOV -6.(0),%1
ASL %1
MOV 8.(1),%1
BIS #040000,%1
MOV -6.(0),%2
ASL %2
MOV %1,8.(2)
MOV #000026,%3
MOV #000200,%2
MOV -6.(0),%1
JSR %7,@G+314.
000010
CLR G+416.
MOV #177777,-2.(0)
LA39:
LA38:
JSR %7,@G+336.
000006
JMP LA30
; ENTRY POINT TO AGERTE
LA7:
SUB @(6),%0
MOV %7,@%0
MOV (6)+,-(0)
MOV %0,%5
MOV %1,-(5)
MOV %2,-(5)
MOV -2.(0),%1
ASL %1
MOV 2.(1),%1
BIC #100377,%1
TST %1
BEQ LA40
MOV -2.(0),%1
ADD #000003,%1
JSR %7,@G+246.
000006
TST %1
BEQ LA40
MOV -2.(0),%1
ASL %1
TST 2.(1)
BEQ LA41
TST #100000
BEQ LA41
MOV -2.(0),%1
ASL %1
MOV 2.(1),%1
BIC #100000,%1
MOV -2.(0),%2
ASL %2
MOV %1,2.(2)
MOV -2.(0),%1
ADD #000003,%1
MOV #001604,%2
JSR %7,@G+244.
000006
BR LA42
LA41:
MOV -2.(0),%1
ASL %1
MOV (1),%2
MOV -4.(0),%1
JSR %7,@G+346.
000006
LA42:
LA40:
MOV (0)+,%5
ADD (5)+,%0
JMP @%5
; ENTRY POINT TO PROCESSROUTEINFOREPLY
LA9:
SUB @(6),%0
MOV %7,@%0
MOV (6)+,-(0)
MOV %0,%5
MOV %1,-(5)
MOV -2.(0),%1
ASL %1
MOV 26.(1),%1
CLRB %1
SWAB %1
MOV %1,-4.(0)
MOV -2.(0),%1
ASL %1
MOV 32.(1),%1
BIC #177400,%1
MOV %1,-6.(0)
TST -4.(0)
BEQ LA43
MOV #000021,%1
ADD -2.(0),%1
ASL %1
TST (1)
BNE LA43
MOV #000021,%1
INC %1
ADD -2.(0),%1
ASL %1
CMP (1),#000002
BNE LA43
MOV -2.(0),%1
ASL %1
MOV 18.(1),%1
SUB #000026,%1
MOV #000001,-8.(0)
MOV %1,-10.(0)
BR LA44
LA45:
MOV -8.(0),%1
INC %1
MOV %1,%3
SXT %2
DIV #000002,%2
ADD #000023,%2
ADD -2.(0),%2
ASL %2
MOV (2),%2
BIC #177400,%2
MOV %2,-16.(0)
MOV #000017,%2
MOV -16.(0),%1
JSR %7,@G+364.
000014
INC %1
MOV %1,-12.(0)
CLR -14.(0)
MOV -8.(0),%1
DEC %1
MOV %1,%3
SXT %2
DIV #000002,%2
ADD #000023,%2
ADD -2.(0),%2
ASL %2
MOV (2),%2
CLRB %2
SWAB %2
MOV %2,-4.(0)
CLR %3
MOV -4.(0),%2
MOV G+414.,%1
JSR %7,@G+342.
000020
MOV %1,-14.(0)
TST -14.(0)
BNE LA46
CMP -12.(0),#000017
BLE LA48
BR LA49
LA48:
MOV -4.(0),%2
MOV G+414.,%1
JSR %7,@G+344.
000020
MOV %1,-14.(0)
BR LA47
LA43:
JMP MA43
LA46:
MOV -14.(0),%1
ASL %1
MOV 2.(1),%1
BIC #100377,%1
TST %1
BNE LA50
BR LA49
LA50:
LA47:
MOV -14.(0),%1
ASL %1
MOV 2.(1),%1
BIC #077777,%1
TST %1
BEQ LA52
MOV -2.(0),%1
ASL %1
MOV -14.(0),%2
ASL %2
CMP 6.(1),4.(2)
BNE LA53
MOV -14.(0),%1
ASL %1
MOV 2.(1),%1
BIC #177400,%1
CMP %1,-6.(0)
BEQ LA52
LA53:
MOV -14.(0),%1
ASL %1
MOV 2.(1),%1
BR LA999
LA44:
JMP MA44
LA999:
BIC #100377,%1
CLRB %1
SWAB %1
CMP -12.(0),%1
BGE LA51
LA52:
MOV -14.(0),%1
ASL %1
MOV 2.(1),%1
BIC #100377,%1
CLRB %1
SWAB %1
CMP %1,-12.(0)
BEQ LA54
MOV #177777,G+412.
LA54:
MOV -14.(0),%1
ASL %1
MOV 2.(1),%1
BIC #077777,%1
MOV -12.(0),%2
SWAB %2
CLRB %2
ADD %2,%1
ADD -6.(0),%1
MOV -14.(0),%2
ASL %2
MOV %1,2.(2)
MOV -2.(0),%1
ASL %1
MOV -14.(0),%2
ASL %2
MOV 6.(1),4.(2)
CMP -12.(0),#000017
BGT LA55
MOV -14.(0),%1
ASL %1
MOV 2.(1),%1
BIS #100000,%1
BR LA998
LA49:
JMP MA49
LA998:
MOV -14.(0),%2
ASL %2
MOV %1,2.(2)
MOV -14.(0),%1
ADD #000003,%1
MOV #001604,%2
JSR %7,@G+244.
000020
LA55:
LA51:
MA49:
ADD #000004,-8.(0)
MA44:
CMP -8.(0),-10.(0)
BGT LA997
JMP LA45
LA997:
MA43:
MOV -2.(0),%1
JSR %7,@G+306.
000010
MOV (0)+,%5
ADD (5)+,%0
JMP @%5
MA11:
.CSECT GLOBAL
.=G+330.
LA1
.=G+342.
LA2
.=G+348.
LA3
.=G+344.
LA4
.=G+346.
LA5
.=G+338.
LA6
.CSECT
LA8:
LA7
LA10:
LA9
.END